From e662438675b66c35d70f977e82885e9298e04a07 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sat, 28 Mar 2020 14:33:01 -0400 Subject: [PATCH] button: Fix an event handling gotcha We no longer translate event coordinates in-place, so gdk_event_get_position() returns surface-relative coordinates, not widget-relative ones. Just use the coordinates we are given. --- gtk/gtkbutton.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/gtk/gtkbutton.c b/gtk/gtkbutton.c index 7da11fb7d5..d633c77fe6 100644 --- a/gtk/gtkbutton.c +++ b/gtk/gtkbutton.c @@ -306,10 +306,11 @@ click_pressed_cb (GtkGestureClick *gesture, } static gboolean -touch_release_in_button (GtkButton *button) +touch_release_in_button (GtkButton *button, + double x, + double y) { GdkEvent *event; - gdouble x, y; event = gtk_get_current_event (); @@ -322,8 +323,6 @@ touch_release_in_button (GtkButton *button) return FALSE; } - gdk_event_get_position (event, &x, &y); - gdk_event_unref (event); if (gtk_widget_contains (GTK_WIDGET (button), x, y)) @@ -346,7 +345,7 @@ click_released_cb (GtkGestureClick *gesture, gtk_button_do_release (button, gtk_widget_is_sensitive (GTK_WIDGET (button)) && (priv->in_button || - touch_release_in_button (button))); + touch_release_in_button (button, x, y))); sequence = gtk_gesture_single_get_current_sequence (GTK_GESTURE_SINGLE (gesture)); -- 2.30.2